<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    /*
    promise 的回调函数接收两个参数 resolve,reject 这两个参数都是函数
    未来调用resolve函数就会把promise实列状态改为成功 调用reject函数就会把promise状态改为失败
    只要没有调用resolve或者reject promisestate的状态永远为pending
    第一个状态正在进行中(pending) 第二个状态成功(fulfilled) 第三个状态失败(rejected) 
    promise的实列状态只能由pending改为其他状态
    resolve reject函数只能改变promise状态，并不能阻止代码继续执行
    */
    const p1 = new Promise((resolve, reject) => {
      //手动模拟错误
      // throw new Error('错误')
      console.log('请求数据');
      setTimeout(() => {
        console.log('请求数据成功');
        //resolve()
        reject() //Uncaught (in promise) undefined
        console.log('失败后的代码');
      })

    })

    console.log('p1', p1);
  </script>
</body>

</html>